Error Correction Coding (ECC) is used in many applications, such as in digital communication and data storage systems. Some systems use a special class of block codes called Low Density Parity Check (LDPC) codes. LDPC codes are described, for example, by Gallager, in “Low Density Parity Check Codes,” MIT Press, 1963, which is incorporated herein by reference. Chapter 4 of this book describes decoding of LDPC codes. Lin and Costello describe iterative algorithms for decoding LDPC codes, as well as several example decoder configurations, in “Error Control Coding,” Prentice Hall, second edition, June, 2004, Chapter 17.6, pages 871-880, which is incorporated herein by reference.
PCT International Publication WO 2009/072103, whose disclosure is incorporated herein by reference, describes a method for decoding Flash memory cells that are error-correction-coded as a unit. The method includes providing a hard-decoding success indication indicating whether or not hard-decoding is at least likely to be successful; and soft-decoding the plurality of flash memory cells at a first resolution only if the hard-decoding success indication indicates that the hard-decoding is not at least likely to be successful.